#include <iostream>
#include <string>
#include <unistd.h>
#include <signal.h>
#include <functional>
#include <vector>

using func_t = std::function<void()>;

std::vector<func_t> funcs;

void sched()
{
    std::cout<<"我是进程调度"<<std::endl;
}
void memManger()
{
    std::cout<<"我是内存管理"<<std::endl;
}
void fflush_()
{
    std::cout<<"我是刷新"<<std::endl;
}


void sighandler(int sig)
{
    std::cout<<"收到信号："<<sig<<std::endl;
    for(auto func : funcs)
        func();
    alarm(1);
}

int main()
{
    funcs.push_back(func_t(sched));
    funcs.push_back(func_t(memManger));
    funcs.push_back(func_t(fflush_));
    
    alarm(1);
    while (true)
    {
        /* code */
        pause();
    }
    
    return 0;
}

// int main()
// {
//     for(int i = 0;i<32;i++)
//         signal(i,sighandler);
//     alarm(5);
//     while (true)
//     {
//         /* code */
//         std::cout<<"hello"<<std::endl;
//         sleep(1);
//     }
    
//     return 0;
// }